home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 1998 November / IRIX 6.5.2 Base Documentation November 1998.img / usr / share / catman / u_man / cat1 / speedshop.z / speedshop
Text File  |  1998-10-30  |  40KB  |  661 lines

  1.  
  2.  
  3.  
  4. SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP((((1111))))                                                      SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP((((1111))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      SpeedShop, speedshop - an integrated package of performance tools
  10.  
  11. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  12.      SpeedShop is the generic name for an integrated package of performance
  13.      tools to run performance experiments on executables, and to examine the
  14.      results of those experiments.  It also supports starting a process, in
  15.      such a way as to permit a debugger to attach to it, and it supports
  16.      running Purify on executables.
  17.  
  18.      For Purify and for some experiments instrumentation is necessary; if so,
  19.      it will be performed automatically, and the resulting instrumented
  20.      executable run to generate the data.
  21.  
  22. SSSSUUUUPPPPPPPPOOOORRRRTTTTEEEEDDDD EEEEXXXXEEEECCCCUUUUTTTTAAAABBBBLLLLEEEESSSS
  23.      SpeedShop works under IRIX 6.2, or later, and supports executables
  24.      compiled with the IRIX 6.2 compilers (o32, n32 and 64), or with the
  25.      MIPSPro 7.x compilers (n32 and 64).  SpeedShop supports C, C++, FORTRAN,
  26.      ADA, and asm programs.  Programs must be built using shared libraries
  27.      (DSOs); nonshared or stripped executables are not supported.
  28.  
  29. RRRREEEECCCCOOOORRRRDDDDIIIINNNNGGGG EEEEXXXXPPPPEEEERRRRIIIIMMMMEEEENNNNTTTTSSSS
  30.      Experiments are recorded using the ssrun(1) command, as follows:
  31.           ssssssssrrrruuuunnnn ----<_e_x_p_t_y_p_e> <_a._o_u_t-_n_a_m_e> <_a._o_u_t _a_r_g_u_m_e_n_t_s>
  32.      where <_e_x_p_t_y_p_e> is one of the named experiments listed below.
  33.  
  34.      The result of an experiment is one or more files that are named by the
  35.      following convention:
  36.                     <_a._o_u_t-_n_a_m_e>.<_e_x_p_t_y_p_e>.<_c_o_d_e><_p_i_d>
  37.      where <code> is:
  38.      'm' for the master process created by _s_s_r_u_n;
  39.      'p' for a process created by a call to _s_p_r_o_c();
  40.      'f' for a process created by a call to _f_o_r_k();
  41.      'e' for a process created by a call to _e_x_e_c();
  42.      's' for a process created by a call to _s_y_s_t_e_m(); and
  43.      'fe' for the _e_x_e_c'd process created by calls to _f_o_r_k() and _e_x_e_c()
  44.      with environment variable _SPEEDSHOP_TRACE_FORK_TO_EXEC being set to False.
  45.  
  46.      To start the target process running, and leave it in a state to attach
  47.      a debugger, add the ----hhhhaaaannnngggg flag:
  48.           ssssssssrrrruuuunnnn ----hhhhaaaannnngggg ----<_e_x_p_t_y_p_e> <_a._o_u_t-_n_a_m_e> <_a._o_u_t _a_r_g_u_m_e_n_t_s>
  49.  
  50.      To get more detailed information about the run, add the ----vvvv
  51.      flag:
  52.           ssssssssrrrruuuunnnn ----vvvv ----<_e_x_p_t_y_p_e> <_a._o_u_t-_n_a_m_e> <_a._o_u_t _a_r_g_u_m_e_n_t_s>
  53.                -or-
  54.           ssssssssrrrruuuunnnn ----vvvv ----hhhhaaaannnngggg ----<_e_x_p_t_y_p_e> <_a._o_u_t-_n_a_m_e> <_a._o_u_t _a_r_g_u_m_e_n_t_s>
  55.  
  56.      To run Purify on an executable, use:
  57.           ssssssssrrrruuuunnnn ----ppppuuuurrrriiiiffffyyyy <_a._o_u_t-_n_a_m_e> <_a._o_u_t _a_r_g_u_m_e_n_t_s>
  58.  
  59.      Purify and performance experiments are mutually exclusive.
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP((((1111))))                                                      SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP((((1111))))
  71.  
  72.  
  73.  
  74.      ssssssssrrrruuuunnnn may take additional arguments; see its man page for further
  75.      information.
  76.  
  77. EEEEXXXXPPPPEEEERRRRIIIIMMMMEEEENNNNTTTT TTTTYYYYPPPPEEEESSSS
  78.      The following experiment types, specified by <_e_x_p_t_y_p_e> above, are
  79.      supported in the current release:
  80.  
  81.      uuuusssseeeerrrrttttiiiimmmmeeee aaaannnndddd ttttoooottttaaaallllttttiiiimmmmeeee
  82.           uses statistical callstack profiling, based on process virtual time
  83.           (including time spent when the system is running on behalf of the
  84.           process) for usertime and wall clock time for totaltime, with a time
  85.           sample interval of 30 milliseconds.
  86.           NNNNooootttteeee:::: o32 executables must explicitly link with -_l_e_x_c for these
  87.           experiments to work; program execution may show significant slowdown
  88.           compared to the original executable; the stack unwind code sometimes
  89.           fails to completely unwind the stack; consequently, caller
  90.           attribution can not be done beyond the point of failure.
  91.  
  92.      [[[[ffff]]]]ppppccccssssaaaammmmpppp[[[[xxxx]]]]
  93.           uses statistical PC sampling, using 16-bit bins, based on user and
  94.           system time, with a sample interval of 10 milliseconds.  If the
  95.           optional ffff prefix is specified, a sample interval of 1 millisecond
  96.           will be used.  If the optional xxxx suffix is specified, a 32-bit bin
  97.           size will be used.
  98.  
  99.      iiiiddddeeeeaaaallll
  100.           uses basic-block counting, done by instrumenting the executable.
  101.  
  102.      ffffppppeeee  does tracing of all floating-point exceptions.
  103.  
  104.      iiiioooo   does tracing of various I/O system calls.
  105.  
  106.      On machines with hardware performance counters, (R10000 machines), the
  107.      following additional types are supported:
  108.  
  109.      [[[[ffff]]]]ggggiiii____hhhhwwwwcccc
  110.           uses statistical PC sampling, based on overflows of the graduated-
  111.           instruction counter, at an overflow interval of 32771.  If the
  112.           optional ffff prefix is used, the overflow interval will be 6553.
  113.  
  114.      [[[[ffff]]]]ccccyyyy____hhhhwwwwcccc
  115.           uses statistical PC sampling, based on overflows of the cycle
  116.           counter, at an overflow interval of 16411.  If the optional ffff prefix
  117.           is used, the overflow interval will be 3779.
  118.  
  119.      [[[[ffff]]]]iiiicccc____hhhhwwwwcccc
  120.           uses statistical PC sampling, based on overflows of the primary
  121.           instruction-cache miss counter, at an overflow interval of 2053.  If
  122.           the optional ffff prefix is used, the overflow interval will be 419.
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP((((1111))))                                                      SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP((((1111))))
  137.  
  138.  
  139.  
  140.      [[[[ffff]]]]iiiisssscccc____hhhhwwwwcccc
  141.           uses statistical PC sampling, based on overflows of the secondary
  142.           instruction-cache miss counter, at an overflow interval of 131.  If
  143.           the optional ffff prefix is used, the overflow interval will be 29.
  144.  
  145.      [[[[ffff]]]]ddddcccc____hhhhwwwwcccc
  146.           uses statistical PC sampling, based on overflows of the primary
  147.           data-cache miss counter, at an overflow interval of 2053.  If the
  148.           optional ffff prefix is used, the overflow interval will be 419.
  149.  
  150.      [[[[ffff]]]]ddddsssscccc____hhhhwwwwcccc
  151.           uses statistical PC sampling, based on overflows of the secondary
  152.           data-cache miss counter, at an overflow interval of 131.  If the
  153.           optional ffff prefix is used, the overflow interval will be 29.
  154.  
  155.      [[[[ffff]]]]ttttllllbbbb____hhhhwwwwcccc
  156.           uses statistical PC sampling, based on overflows of the TLB miss
  157.           counter, at an overflow interval of 257.  If the optional ffff prefix
  158.           is used, the overflow interval will be 53.
  159.  
  160.      [[[[ffff]]]]ggggffffpppp____hhhhwwwwcccc
  161.           uses statistical PC sampling, based on overflows of the graduated
  162.           floating-point instruction counter, at an overflow interval of
  163.           32771.  If the optional ffff prefix is used, the overflow interval will
  164.           be 6553.
  165.  
  166.      [[[[ffff]]]]ffffsssscccc____hhhhwwwwcccc
  167.           uses statistical PC sampling, based on overflows of the failed store
  168.           conditionals counter, at an overflow interval of 2003.  If the
  169.           optional ffff prefix is used, the overflow interval will be 401.
  170.  
  171.      pppprrrrooooffff____hhhhwwwwcccc
  172.           uses statistical PC sampling, based on overflows of the counter
  173.           specified by the environment variable _SPEEDSHOP_HWC_COUNTER_NUMBER,
  174.           at an interval given by the environment variable
  175.           _SPEEDSHOP_HWC_COUNTER_OVERFLOW.  Note that these environment
  176.           variables can not be used to override the counter number or interval
  177.           for the other defined experiments.  They are examined only when the
  178.           pppprrrrooooffff____hhhhwwwwcccc experiment is specified.  The default counter is the
  179.           primary instruction-cache miss counter and the default overflow
  180.           interval is 2053.
  181.  
  182.      ggggiiii____hhhhwwwwccccttttiiiimmmmeeee
  183.           profiles the cycle counter using statistical call-stack sampling,
  184.           based on overflows of the graduated-instruction counter, at an
  185.           overflow interval of 1000003.
  186.  
  187.      ccccyyyy____hhhhwwwwccccttttiiiimmmmeeee
  188.           profiles the cycle counter using statistical call-stack sampling,
  189.           based on overflows of the cycle counter, at an overflow interval of
  190.           10000019.
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP((((1111))))                                                      SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP((((1111))))
  203.  
  204.  
  205.  
  206.      iiiicccc____hhhhwwwwccccttttiiiimmmmeeee
  207.           profiles the cycle counter using statistical call-stack sampling,
  208.           based on overflows of the primary instruction-cache-miss counter, at
  209.           an overflow interval of 8009.
  210.  
  211.      iiiisssscccc____hhhhwwwwccccttttiiiimmmmeeee
  212.           profiles the cycle counter using statistical call-stack sampling,
  213.           based on overflows of the secondary instruction-cache-miss counter,
  214.           at an overflow interval of 2003.
  215.  
  216.      ddddcccc____hhhhwwwwccccttttiiiimmmmeeee
  217.           profiles the cycle counter using statistical call-stack sampling,
  218.           based on overflows of the primary data-cache-miss counter, at an
  219.           overflow interval of 8009.
  220.  
  221.      ddddsssscccc____hhhhwwwwccccttttiiiimmmmeeee
  222.           profiles the cycle counter using statistical call-stack sampling,
  223.           based on overflows of the secondary data-cache-miss counter, at an
  224.           overflow interval of 2003.
  225.  
  226.      ttttllllbbbb____hhhhwwwwccccttttiiiimmmmeeee
  227.           profiles the cycle counter using statistical call-stack sampling,
  228.           based on overflows of the TLB miss counter, at an overflow interval
  229.           of 2521.
  230.  
  231.      ggggffffpppp____hhhhwwwwccccttttiiiimmmmeeee
  232.           profiles the cycle counter using statistical call-stack sampling,
  233.           based on overflows of the graduated floating-point instruction
  234.           counter, at an overflow interval of 10007.
  235.  
  236.      ffffsssscccc____hhhhwwwwccccttttiiiimmmmeeee
  237.           profiles the cycle counter using statistical call-stack sampling,
  238.           based on overflows of the failed store conditionals counter, at an
  239.           overflow interval of 5003.
  240.  
  241.      pppprrrrooooffff____hhhhwwwwccccttttiiiimmmmeeee
  242.           profiles the counter specified by the environment variable
  243.           _SPEEDSHOP_HWC_COUNTER_PROF_NUMBER using statistical call-stack
  244.           sampling, based on overflows of the counter specified by the
  245.           environment variable _SPEEDSHOP_HWC_COUNTER_NUMBER, at an interval
  246.           given by the environment variable _SPEEDSHOP_HWC_COUNTER_OVERFLOW.
  247.           Note that these environment variables can not be used to override
  248.           the counter numbers or interval for the other defined experiments.
  249.           They are examined only when the pppprrrrooooffff____hhhhwwwwccccttttiiiimmmmeeee experiment is
  250.           specified.  The default overflow and profling counter is the cycle
  251.           counter and the default overflow interval is 10000019.
  252.  
  253.      One additional experiment type may be recorded, but no report generation
  254.      for it is yet supported.  It is:
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP((((1111))))                                                      SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP((((1111))))
  269.  
  270.  
  271.  
  272.      hhhheeeeaaaapppp does tracing of all _m_a_l_l_o_c and _f_r_e_e, _e_t_c. calls, and also supports
  273.           various options for debugging heap usage.
  274.  
  275.      Custom experiments will be supported in future releases.
  276.  
  277. RRRREEEEPPPPOOOORRRRTTTT GGGGEEEENNNNEEEERRRRAAAATTTTIIIIOOOONNNN
  278.      Report generation is done through the prof(1) command:
  279.           pppprrrrooooffff <_o_u_t_p_u_t _f_i_l_e> . . . <_o_u_t_p_u_t _f_i_l_e>
  280.      It will add the data from all of the output files, and produce a listing
  281.      which depends on the particular experiment type.  For all experiments, it
  282.      will produce a list of functions, annotated with the appropriate metric.
  283.  
  284.      For [[[[ffff]]]]ppppccccssssaaaammmmpppp[[[[xxxx]]]], and the various ****____hhhhwwwwcccc experiments, the function list is
  285.      annotated with the exclusive metric;  for the PC sampling experiments,
  286.      the metric is exclusive time, for the various hardware counter profiling
  287.      experiments the metric is exclusive counts.
  288.  
  289.      For iiiiddddeeeeaaaallll experiments, the function list is annotated with a cycle count
  290.      and percentage, a cumulative percentage for that function and all others
  291.      above it in the list, an estimated of idealized time, an instruction
  292.      execution count, and a call count.  If the ----bbbb[[[[uuuutttttttteeeerrrrffffllllyyyy]]]] flag is added, a
  293.      list of callers and callees of each function is also produced.
  294.  
  295.      For uuuusssseeeerrrrttttiiiimmmmeeee and ttttoooottttaaaallllttttiiiimmmmeeee and the various ****____hhhhwwwwccccttttiiiimmmmeeee experiments, the
  296.      function list is annotated with percentage of time or counts for the
  297.      function, the time in that function, and the time or counts in that
  298.      function and its descendants, and a count of the number of callstacks
  299.      containing that function.  If the ----bbbb[[[[uuuutttttttteeeerrrrffffllllyyyy]]]] flag is added, a list of
  300.      callers and callees of each function is also produced.
  301.  
  302.      For ffffppppeeee experiments, the function list is annotated with the percentage
  303.      of FPEs in that function, and counts for the function and its
  304.      descendants.  If the ----bbbb[[[[uuuutttttttteeeerrrrffffllllyyyy]]]] flag is added, a list of callers and
  305.      callees of each function is also produced.
  306.  
  307.      For iiiioooo experiments, the function list is annotated with the percentage of
  308.      IO calls in that function, and counts for the function and its
  309.      descendants.  If the ----bbbb[[[[uuuutttttttteeeerrrrffffllllyyyy]]]] flag is added, a list of callers and
  310.      callees of each function is also produced.
  311.  
  312.      There are many additional options to _p_r_o_f; see the prof(1) man page for
  313.      further details.
  314.  
  315. CCCCAAAALLLLIIIIPPPPEEEERRRR SSSSAAAAMMMMPPPPLLLLEEEESSSS
  316.      In the current releases, caliper samples may be recorded, and the
  317.      -calipers option to prof, will allow you to see the data for any
  318.      caliper-setting.
  319.  
  320.      Caliper samples are supported in three different ways.  First, the user
  321.      can explicitly link with the SpeedShop runtime, and call its API routine
  322.      to record a caliper sample; second, the user can define a signal to be
  323.      used to record a caliper sample, by specifying the environment variable
  324.  
  325.  
  326.  
  327.                                                                         PPPPaaaaggggeeee 5555
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP((((1111))))                                                      SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP((((1111))))
  335.  
  336.  
  337.  
  338.      _SPEEDSHOP_CALIPER_POINT_SIG and send the target the specified signal;
  339.      third, a caliper-sample trap may be set in either _d_b_x, or the WorkShop
  340.      debugger.  In the current debuggers, this is done by planting an stop
  341.      trap (breakpoint), and, when the process stops, evaluating the
  342.      expression:
  343.                ssrt_caliper_point(0, 0)
  344.      the evaluation of the expression always returns zero, but a side effect
  345.      of the evaluation is the recording of the appropriate data.  After
  346.      evaluation, process execution may be resumed.  See the ssapi(3) man page
  347.      for further details.
  348.  
  349. UUUUSSSSEEEERRRR EEEENNNNVVVVIIIIRRRROOOONNNNMMMMEEEENNNNTTTT VVVVAAAARRRRIIIIAAAABBBBLLLLEEEE CCCCOOOONNNNTTTTRRRROOOOLLLLSSSS
  350.      Various environment variables are normally used to control the operation
  351.      of SpeedShop.  They are:
  352.  
  353.      ____SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP____VVVVEEEERRRRBBBBOOOOSSSSEEEE
  354.           causes a log of each program's operation to be written to stderr.
  355.           If it is set to an empty string, only major events are logged; if it
  356.           is set to a non-empty string, more detailed events are logged.
  357.  
  358.      ____SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP____SSSSIIIILLLLEEEENNNNTTTT
  359.           if set, suppresses all output, other than fatal error messages from
  360.           SpeedShop.  If both _SPEEDSHOP_VERBOSE and _SPEEDSHOP_SILENT are
  361.           set, _SPEEDSHOP_SILENT wins.
  362.  
  363.      ____SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP____CCCCAAAALLLLIIIIPPPPEEEERRRR____PPPPOOOOIIIINNNNTTTT____SSSSIIIIGGGG <<<<ssssiiiiggggnnnnaaaallll----nnnnuuuummmmbbbbeeeerrrr>>>>
  364.           if specified, gives a signal number to be used for recording a
  365.           caliper-point in the experiment.
  366.  
  367.      ____SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP____PPPPOOOOLLLLLLLLPPPPOOOOIIIINNNNTTTT____CCCCAAAALLLLIIIIPPPPEEEERRRR____PPPPOOOOIIIINNNNTTTT <<<<ttttiiiimmmmeeeerrrr____ttttyyyyppppeeee>>>>,,,,<<<<ttttiiiimmmmeeeerrrr____iiiinnnntttteeeerrrrvvvvaaaallll>>>>
  368.           if specified, defines the timer type and the timer interval (in
  369.           secs) for pollpoint caliper points.
  370.  
  371.      ____SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP____OOOOUUUUTTTTPPPPUUUUTTTT____DDDDIIIIRRRREEEECCCCTTTTOOOORRRRYYYY
  372.           if specified, the output data files and the instrumented binaries
  373.           will be put in the named directory.
  374.  
  375.      ____SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP____OOOOUUUUTTTTPPPPUUUUTTTT____FFFFDDDD
  376.           if specified, gives the number of the file descriptor to be used for
  377.           writing the output file.  NNNNooootttteeee:::: this option is not supported in the
  378.           current release.
  379.  
  380.      ____SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP____RRRREEEEUUUUSSSSEEEE____FFFFIIIILLLLEEEE____DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTOOOORRRRSSSS
  381.           if set, opens and closes the file descriptors for the output files
  382.           every time performance data is to be written. If the target program
  383.           is using chdir(), then the _SPEEDSHOP_OUTPUT_DIRECTORY environment
  384.           variable should also be set to the full pathname of the directory
  385.           where the output files are to be put.
  386.  
  387.      ____SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP____OOOOUUUUTTTTPPPPUUUUTTTT____FFFFIIIILLLLEEEENNNNAAAAMMMMEEEE
  388.           if specified, the given name will be used for the output file;  if
  389.           _SPEEDSHOP_OUTPUT_DIRECTORY is also specified, it will be prepended
  390.  
  391.  
  392.  
  393.                                                                         PPPPaaaaggggeeee 6666
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400. SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP((((1111))))                                                      SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP((((1111))))
  401.  
  402.  
  403.  
  404.           to the name.
  405.  
  406.      ____SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP____HHHHWWWWCCCC____CCCCOOOOUUUUNNNNTTTTEEEERRRR____NNNNUUUUMMMMBBBBEEEERRRR
  407.           specifies the overflow counter to be used for pppprrrrooooffff____hhhhwwwwcccc or
  408.           pppprrrrooooffff____hhhhwwwwccccttttiiiimmmmeeee experiments.  Counters are numbered between 0 and 31,
  409.           and are described in the MIPS R10000 Microprocessor User's Manual,
  410.           Chapter 14.  Counter 0 counters are numbered 0-15, and counter 1
  411.           counters are numbers 16-31.
  412.  
  413.      ____SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP____HHHHWWWWCCCC____CCCCOOOOUUUUNNNNTTTTEEEERRRR____OOOOVVVVEEEERRRRFFFFLLLLOOOOWWWW
  414.           specifies the overflow value for the counter to be used in pppprrrrooooffff____hhhhwwwwcccc
  415.           or pppprrrrooooffff____hhhhwwwwccccttttiiiimmmmeeee experiments.  The value chosen may be any number
  416.           greater than 0.  Some choices may produce data that is not
  417.           statistically random, but rather reflects a correlation between the
  418.           overflow interval and a cyclic behavior in the application.  Users
  419.           may want to do two or more runs with different overflow values.
  420.  
  421.      ____SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP____HHHHWWWWCCCC____CCCCOOOOUUUUNNNNTTTTEEEERRRR____PPPPRRRROOOOFFFF____NNNNUUUUMMMMBBBBEEEERRRR
  422.           specifies the profiling counter to be used for pppprrrrooooffff____hhhhwwwwccccttttiiiimmmmeeee
  423.           experiments.  Counters are numbered between 0 and 31, and are
  424.           described in the MIPS R10000 Microprocessor User's Manual, Chapter
  425.           14.  Counter 0 counters are numbered 0-15, and counter 1 counters
  426.           are numbers 16-31.
  427.  
  428.      ____SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP____HHHHWWWWCCCC____CCCCOOOOUUUUNNNNTTTTEEEERRRR____SSSSIIIIGGGGNNNNAAAALLLL____NNNNUUUUMMMMBBBBEEEERRRR
  429.           specifies the profiling signal to be used for pppprrrrooooffff____hhhhwwwwccccttttiiiimmmmeeee
  430.           experiments.
  431.  
  432.      ____SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP____OOOOUUUUTTTTPPPPUUUUTTTT____NNNNOOOOCCCCOOOOMMMMPPPPRRRREEEESSSSSSSS
  433.           if set, disables the compression of performance data.
  434.  
  435.      Other variables will be documented in the future releases.
  436.  
  437. PPPPRRRROOOOCCCCEEEESSSSSSSS TTTTRRRRAAAACCCCKKKKIIIINNNNGGGG EEEENNNNVVVVIIIIRRRROOOONNNNMMMMEEEENNNNTTTT VVVVAAAARRRRIIIIAAAABBBBLLLLEEEE CCCCOOOONNNNTTTTRRRROOOOLLLLSSSS
  438.      Various environment variables may be used for controlling the treatment
  439.      of processes spawned from the original target.  They are:
  440.  
  441.      ____SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP____TTTTRRRRAAAACCCCEEEE____FFFFOOOORRRRKKKK {{{{TTTTrrrruuuueeee||||FFFFaaaallllsssseeee}}}}
  442.           if True, specifies that processes spawned by calls to _f_o_r_k() will be
  443.           monitored, if they do not call _e_x_e_c().  If they do call _e_x_e_c(), and
  444.           _SPEEDSHOP_TRACE_FORK_TO_EXEC is not set to True, the data covering
  445.           the time between the _f_o_r_k() and the _e_x_e_c() will be discarded.  It is
  446.           True by default.  NNNNooootttteeee:::: in the current release, data will be
  447.           recorded independent of whether the process calls _e_x_e_c() or not.
  448.  
  449.      ____SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP____TTTTRRRRAAAACCCCEEEE____FFFFOOOORRRRKKKK____TTTTOOOO____EEEEXXXXEEEECCCC {{{{TTTTrrrruuuueeee||||FFFFaaaallllsssseeee}}}}
  450.           if True, specifies that process spawned by calls to _f_o_r_k() will be
  451.           monitored, even if they also call _e_x_e_c().  It is False by default.
  452.  
  453.      ____SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP____TTTTRRRRAAAACCCCEEEE____EEEEXXXXEEEECCCC {{{{TTTTrrrruuuueeee||||FFFFaaaallllsssseeee}}}}
  454.           if True, specifies that process spawned by calls to any of the
  455.           various flavors of _e_x_e_c() will be monitored.  It is True by default.
  456.  
  457.  
  458.  
  459.                                                                         PPPPaaaaggggeeee 7777
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466. SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP((((1111))))                                                      SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP((((1111))))
  467.  
  468.  
  469.  
  470.      ____SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP____TTTTRRRRAAAACCCCEEEE____SSSSPPPPRRRROOOOCCCC {{{{TTTTrrrruuuueeee||||FFFFaaaallllsssseeee}}}}
  471.           if True, specifies that process spawned by calls to _s_p_r_o_c() will be
  472.           monitored.  It is True by default.
  473.  
  474.      ____SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP____TTTTRRRRAAAACCCCEEEE____SSSSYYYYSSSSTTTTEEEEMMMM {{{{TTTTrrrruuuueeee||||FFFFaaaallllsssseeee}}}}
  475.           if True, specifies that process spawned by calls to _s_y_s_t_e_m() will be
  476.           monitored.  It is False by default.
  477.  
  478. EEEEXXXXPPPPEEEERRRRTTTT----MMMMOOOODDDDEEEE EEEENNNNVVVVIIIIRRRROOOONNNNMMMMEEEENNNNTTTT VVVVAAAARRRRIIIIAAAABBBBLLLLEEEE CCCCOOOONNNNTTTTRRRROOOOLLLLSSSS
  479.      Various additional environment variables may be used for debugging and
  480.      finer control of the operation of SpeedShop.  They are:
  481.  
  482.      ____SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP____SSSSAAAAMMMMPPPPLLLLIIIINNNNGGGG____MMMMOOOODDDDEEEE
  483.           for PC-sampling and hardware-counter profiling, if set to 1, will
  484.           generate data for the base executable only.  If it is not set, or
  485.           set to anything other than 1, data is generated for the executable
  486.           and all DSOs it uses.
  487.  
  488.      ____SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP____IIIINNNNIIIITTTT____DDDDEEEEFFFFEEEERRRRRRRREEEEDDDD____SSSSIIIIGGGG <<<<ssssiiiiggggnnnnaaaallll----nnnnuuuummmmbbbbeeeerrrr>>>>
  489.           If specified, initialization of the experiment will not be performed
  490.           when the target process starts, but rather will be delayed until the
  491.           specified signal is sent to the process.   A handler for the given
  492.           signal will be installed when the process starts, and it is the
  493.           users responsibility to ensure that it is not overridden by the
  494.           target code.  If the process terminates before the signal is
  495.           received, no data will be recorded.
  496.  
  497.      ____SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP____SSSSHHHHUUUUTTTTDDDDOOOOWWWWNNNN____SSSSIIIIGGGG <<<<ssssiiiiggggnnnnaaaallll----nnnnuuuummmmbbbbeeeerrrr>>>>
  498.           If specified, termination of the experiment will not be performed
  499.           when the target process exits, but rather will happen when the
  500.           specified signal is sent to the process.   A handler for the given
  501.           signal will be installed when the process starts, and it is the
  502.           users responsibility to ensure that it is not overridden by the
  503.           target code.  If the process terminates before the signal is
  504.           received, data is recorded normally.
  505.  
  506.      ____SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP____EEEEXXXXPPPPEEEERRRRIIIIMMMMEEEENNNNTTTT____TTTTYYYYPPPPEEEE
  507.           passes the name of the experiment to the runtime.  It is normally
  508.           set by ssrun(1), but may be overwritten.
  509.  
  510.      ____SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP____MMMMAAAARRRRCCCCHHHHIIIINNNNGGGG____OOOORRRRDDDDEEEERRRRSSSS
  511.           passes the marching orders of the experiment to the runtime.  It is
  512.           normally set by ssrun(1) from the experiment type, but may be
  513.           overwritten.
  514.  
  515.      ____SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP____SSSSBBBBRRRRKKKK____BBBBUUUUFFFFFFFFEEEERRRR____LLLLEEEENNNNGGGGTTTTHHHH
  516.           defines the segment grow size for the internal _m_a_l_l_o_c arena used.
  517.           This arena is completely separate from the user's arena, and it
  518.           usually grows in default segments of size 0x100000.
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.                                                                         PPPPaaaaggggeeee 8888
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532. SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP((((1111))))                                                      SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP((((1111))))
  533.  
  534.  
  535.  
  536.      ____SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP____SSSSBBBBRRRRKKKK____BBBBUUUUFFFFFFFFEEEERRRR____AAAADDDDDDDDRRRR
  537.           defines the preferred starting address to be used for the internal
  538.           _m_a_l_l_o_c arena. This option has to used with extreme care since it
  539.           might result in memory regions overlap.
  540.  
  541.      ____SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP____FFFFIIIILLLLEEEE____BBBBUUUUFFFFFFFFEEEERRRR____LLLLEEEENNNNGGGGTTTTHHHH
  542.           defines the size of the buffer used for writing the experiment
  543.           files.  The default length is 64KB.  The buffer is only used for
  544.           writing many small records to the file (as in tracing experiments);
  545.           large records are written directly, to avoid the buffering overhead.
  546.  
  547.      ____SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP____DDDDEEEEBBBBUUUUGGGG____NNNNOOOO____SSSSIIIIGGGG____TTTTRRRRAAAAPPPPSSSS
  548.           if set, disables the normal setting of signal handlers for all fatal
  549.           and exit signals.
  550.  
  551.      ____SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP____DDDDEEEEBBBBUUUUGGGG____NNNNOOOO____SSSSTTTTAAAACCCCKKKK____UUUUNNNNWWWWIIIINNNNDDDD
  552.           if set, suppresses the stack unwind as done in uuuusssseeeerrrrttttiiiimmmmeeee, ttttoooottttaaaallllttttiiiimmmmeeee,
  553.           or other callstack-based experiments.  The option is used as a
  554.           workaround for various unwind bugs in _l_i_b_e_x_c.
  555.  
  556.      ____SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP____RRRRLLLLDDDD
  557.           defines the full pathname to rld to be used and enables rld
  558.           profiling (for pcsamp and hwc experiments only).
  559.  
  560.      ____SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP____IIIINNNNSSSSTTTTRRRR____AAAARRRRGGGGSSSS
  561.           defines additional instrumentation arguments.
  562.  
  563. IIIINNNNSSSSTTTTRRRRUUUUMMMMEEEENNNNTTTTAAAATTTTIIIIOOOONNNN
  564.      Instrumentation is done with the pixie(1) command, invoked automatically
  565.      by ssrun(1), and, if necessary for DSOs that are opened during a run, by
  566.      the runtime library.  Users normally would not invoke pixie(1) directly.
  567.  
  568.      In the current release, instrumented executables and DSOs appear in the
  569.      current working directory.  In a future release, the DSOs will be cached.
  570.  
  571. SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP AAAAPPPPIIII RRRROOOOUUUUTTTTIIIINNNNEEEESSSS
  572.      The SpeedShop API routines are defined in the include file
  573.      "SpeedShop/api.h", installed in /_u_s_r/_i_n_c_l_u_d_e.  It defines three entry
  574.      points, described int the SpeedShop API man page, ssapi(3).
  575.  
  576. SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP CCCCUUUUSSSSTTTTOOOOMMMM DDDDAAAATTTTAAAA CCCCAAAAPPPPTTTTUUUURRRREEEE RRRROOOOUUUUTTTTIIIINNNNEEEESSSS
  577.      The SpeedShop facility for users to add custom data capture routines is
  578.      not available in the current release.
  579.  
  580. MMMMIIIISSSSCCCCEEEELLLLLLLLAAAANNNNEEEEOOOOUUUUSSSS UUUUTTTTIIIILLLLIIIITTTTYYYY PPPPRRRROOOOGGGGRRRRAAAAMMMMSSSS
  581.      Several utility routines are provided, in addition to the main
  582.      functionality in SpeedShop.  They are:
  583.  
  584.      ssssssssccccoooorrrrdddd
  585.           and ssssssssoooorrrrddddeeeerrrr are used to generate cord feedback files from recorded
  586.           data.  sssssssswwwwsssseeeexxxxttttrrrr is a script to produce the working-set files used
  587.           for cord computations.  See their respective man pages for more
  588.  
  589.  
  590.  
  591.                                                                         PPPPaaaaggggeeee 9999
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598. SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP((((1111))))                                                      SSSSPPPPEEEEEEEEDDDDSSSSHHHHOOOOPPPP((((1111))))
  599.  
  600.  
  601.  
  602.           information.
  603.  
  604.      ssssssssuuuussssaaaaggggeeee
  605.           is a variant of time(1) that prints more information about the
  606.           resource usage of a program.  See ssusage(1) for more information.
  607.  
  608.      ssssssssdddduuuummmmpppp
  609.           is a program which produces a formatted dump of a SpeedShop
  610.           experiment.
  611.  
  612.      ssssqqqquuuueeeeeeeezzzzeeee
  613.           is a program which allocates and locks down memory, making the
  614.           system behave as if it had less physical memory that it really does.
  615.           See squeeze(1) for more information.
  616.  
  617.      tttthhhhrrrraaaasssshhhh
  618.           is a program that allocates memory, and then touches all of the
  619.           pages, in order to force other pages out of the system's physical
  620.           memory.  See thrash(1) for more information.
  621.  
  622.      ffffbbbbdddduuuummmmpppp
  623.           is a program that dumps out the contents of the compiler feedback
  624.           files produced by the ----ffffeeeeeeeeddddbbbbaaaacccckkkk option to prof(1).  See fpdump(1)
  625.           and prof(1) for more information.
  626.  
  627. CCCCAAAAVVVVEEEEAAAATTTTSSSS
  628.      Depending on the revision of the R10000 CPUs there is a difference in the
  629.      interpretation of counter number 14 (``Virtual coherency condition'' for
  630.      parts before revision 3.1 or ``ALU/FPU completion cycles'' for parts at
  631.      revision 3.1 or later).  There are also some subtle differences in the
  632.      semantics of some of the counters.
  633.  
  634.      In systems with a homogeneous deployment of CPUs at the same revision,
  635.      speedshop will adjust the reported information accordingly.
  636.  
  637.      For systems with a mixed deployment of CPU revisions including some
  638.      before 3.1 and some at or after 3.1, the interpretation of counter 14 is
  639.      undefined, and there may be some slight inaccuracies due to aggregation
  640.      of counters with different semantics across all CPUs.
  641.  
  642.      Identification of the revisions for all CPUs can be made using the -v
  643.      option to hinv(1).
  644.  
  645. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  646.      ssrun(1), ssdump(1), prof(1), pixie(1), fbdump(1), ssusage(1),
  647.      squeeze(1), thrash(1), malloc_ss(3), fpe_ss(3), io_ss(3), ssapi(3),
  648.      perfex(1), r10k_counters(5), sscord(1), ssorder(1), sswsextr(1)
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.                                                                        PPPPaaaaggggeeee 11110000
  658.  
  659.  
  660.  
  661.